﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Box.BL;
using Box.Entities;
using Microsoft.Practices.Unity;

namespace Box.Cliente.Logistica.Categoria
{
    public partial class frmCategorias : System.Web.UI.Page
    {
        [Dependency]
        public ICategoriaBL categoriaBl { get; set; }
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                var acc = Request.QueryString["acc"];
                var id = Request.QueryString["id"];

                if (acc == null)
                {
                    Response.Redirect("frmLisCategoria.aspx");
                }
               if (acc != null && id != null && acc == "editar")
                {
                    var identificador = Int32.Parse(id);

                    var categoria = categoriaBl.GetFromCategoriasById(identificador);
                    txtCodigo.Text = categoria.Id.ToString();
                    txtNombre.Text = categoria.NombreCategoria;
                    txtDescripcion.Text = categoria.DescripcionCategoria;
                    

                }
                else if (acc != null && id != null && acc == "eliminar")
                {
                    var identificador = Int32.Parse(id.ToString());
                    DeleteCategoria(identificador);
                }
                
            }
        }

        protected void btnGuardar_Click(object sender, EventArgs e)
        {
            var accion = Request.QueryString["acc"];

            var categoria = new Entities.Categoria()
            {
                NombreCategoria = txtNombre.Text,
                DescripcionCategoria = txtDescripcion.Text
            };
            if (accion == "new")
            {
                if (txtNombre.Text!=string.Empty)
                {
                    categoriaBl.AddCategoria(categoria);
                    Response.Redirect("frmLisCategoria.aspx");
                }
                ScriptManager.RegisterClientScriptBlock(this,
                    this.GetType(), "alertMessage",
                    "alert('Debe Llenar Todos los Campos')", true);
                
            }
            else if (accion == "editar")
            {
                categoria.Id = int.Parse(txtCodigo.Text);
                if (txtNombre.Text != string.Empty)
                {
                    
                    categoriaBl.UpdateCategoria(categoria);
                    Response.Redirect("frmLisCategoria.aspx");
                }
                ScriptManager.RegisterClientScriptBlock(this, 
                    this.GetType(), "alertMessage", 
                    "alert('Debe Llenar Todos los Campos')", true);
            }
        }
        public void DeleteCategoria(Int32 id)
        {
            categoriaBl.RemoveCategoria(id);
            Response.Redirect("frmLisCategoria.aspx");
        }
    }
}